The amount of data stored on digital computing systems has increased dramatically in recent years. Accordingly, users have become increasingly reliant on the storage devices of these systems to store this data. Typically, the data stored on the storage devices undergo modifications. These modifications may arise from user intervention, periodic system updates or alterations, computer initiated processes, or some other source. Whatever the source of the modifications, it is often useful to preserve and permit access to previous versions of the data such as, for example, files and directories. Some instances of when access to previous versions may be useful include, but are not limited to, inadvertently deleted or overwritten data, providing external access to older versions of data while newer versions are being updated, and determining changes to storage device usage over time.
One response to preserving older versions of files has been to copy the entire contents of the storage device to a backup or second storage device. A digital computing system employing this technique will often encounter numerous problems. One, copying entire data systems is time consuming and delays write requests to data on the storage device. Second, this type of backup is financially expensive because it often requires the purchase of additional storage space. Finally, this option does not permit system flexibility.
Moreover, the aforementioned problems are amplified when modern, large-capacity storage devices and distributed storage systems comprising numerous large-capacity storage devices are considered.
More recently, “snapshot” type backup systems and/or programs have been provided, which are capable of storing backup data more frequently, in some cases as often as a user requests. A snapshot copy contains the state at a respective point in time when the snapshot copy is created.
There is, however, a need for intelligent snapshot based backup methods and systems.